<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Appendix&nbsp;A.&nbsp;Lists of Keywords</title>
<link href="../docbook.css" type="text/css" rel="stylesheet">
<meta content="DocBook XSL-NS Stylesheets V1.76.1" name="generator">
<meta name="keywords" content="HSQLDB, HyperSQL, SQL Keywords SQL STAT">
<meta name="keywords" content="Hsqldb, HyperSQL, Database, JDBC, Java">
<link rel="home" href="index.html" title="HyperSQL User Guide">
<link rel="up" href="index.html" title="HyperSQL User Guide">
<link rel="prev" href="deployment-chapt.html" title="Chapter&nbsp;15.&nbsp;Deployment Guide">
<link rel="next" href="building-app.html" title="Appendix&nbsp;B.&nbsp;Building HyperSQL Jars">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<div class="navheader">
<table summary="Navigation header" width="100%">
<tr>
<td align="left" width="30%"><a accesskey="p" href="deployment-chapt.html"><img src="../images/db/prev.png" alt="Prev"></a>&nbsp;</td><td align="center" width="40%" style="font-weight:bold;">Appendix&nbsp;A.&nbsp;Lists of Keywords</td><td align="right" width="30%">&nbsp;<a accesskey="n" href="building-app.html"><img src="../images/db/next.png" alt="Next"></a></td>
</tr>
<tr>
<td valign="top" align="left" width="30%">Chapter&nbsp;15.&nbsp;Deployment Guide&nbsp;</td><td align="center" width="40%"><a accesskey="h" href="index.html"><img src="../images/db/home.png" alt="Home"></a></td><td valign="top" align="right" width="30%">&nbsp;Appendix&nbsp;B.&nbsp;Building HyperSQL Jars</td>
</tr>
</table>
</div>
<HR>
<div class="appendix" title="Appendix&nbsp;A.&nbsp;Lists of Keywords">
<div class="titlepage">
<div>
<div>
<h1 class="title">
<a name="lists-app"></a>Lists of Keywords</h1>
</div>
<div>
<h3 class="subtitle">
<i>List of SQL Keywords</i>
</h3>
</div>
<div>
<div class="author">
<h3 class="author">
<span class="firstname">Fred</span> <span class="surname">Toussi</span>
</h3>
<div class="affiliation">
<span class="orgname">The HSQL Development Group<br>
</span>
</div>
</div>
</div>
<div>
<p class="releaseinfo">$Revision: 847 $</p>
</div>
<div>
<p class="pubdate">2014-02-13 18:22:10-0500</p>
</div>
</div>
</div>
<div class="toc">
<p>
<b>Table of Contents</b>
</p>
<dl>
<dt>
<span class="section"><a href="lists-app.html#lta_standard_keywords">List of SQL Standard Keywords</a></span>
</dt>
<dt>
<span class="section"><a href="lists-app.html#lta_disallowed_keywords">List of SQL Keywords Disallowed as HyperSQL Identifiers</a></span>
</dt>
<dt>
<span class="section"><a href="lists-app.html#lta_function_keywords">Special Function Keywords</a></span>
</dt>
</dl>
</div>
<div class="section" title="List of SQL Standard Keywords">
<div class="titlepage">
<div>
<div>
<h2 class="title" style="clear: both">
<a name="lta_standard_keywords"></a>List of SQL Standard Keywords</h2>
</div>
</div>
</div>
<p>According to the SQL Standard, the SQL Language keywords cannot be
    used as identifiers (names of database objects such as columns and tables)
    without quoting.</p>
<p>HyperSQL has two modes of operation, which are selected with the
    <code class="literal">SET DATABASE SQL NAMES { TRUE | FALSE }</code> to allow or
    disallow the keywords as identifiers. The default mode is FALSE and allows
    the use of most keywords as identifiers. Even in this mode, keywords
    cannot be used as USER or ROLE identifiers. When the mode is TRUE, none of
    the keywords listed below can be used as identifiers.</p>
<p>All keywords can be used with double quotes as identifiers. For
    example</p>
<pre class="programlisting">  CREATE TABLE "ALL" ("AND" INT, "WHEN" INT)
  SELECT "AND" FROM "ALL" WHERE "WHEN" = 2020
</pre>
<p>ABS &bull; ALL &bull; ALLOCATE &bull; ALTER &bull; AND &bull; ANY &bull; ARE &bull; ARRAY &bull; AS &bull;
    ASENSITIVE &bull; ASYMMETRIC &bull; AT &bull; ATOMIC &bull; AUTHORIZATION &bull; AVG</p>
<p>BEGIN &bull; BETWEEN &bull; BIGINT &bull; BINARY &bull; BLOB &bull; BOOLEAN &bull; BOTH &bull;
    BY</p>
<p>CALL &bull; CALLED &bull; CARDINALITY &bull; CASCADED &bull; CASE &bull; CAST &bull; CEIL &bull;
    CEILING &bull; CHAR &bull; CHAR_LENGTH &bull; CHARACTER &bull; CHARACTER_LENGTH &bull; CHECK &bull; CLOB
    &bull; CLOSE &bull; COALESCE &bull; COLLATE &bull; COLLECT &bull; COLUMN &bull; COMMIT &bull; COMPARABLE &bull;
    CONDITION &bull; CONNECT &bull; CONSTRAINT &bull; CONVERT &bull; CORR &bull; CORRESPONDING &bull; COUNT
    &bull; COVAR_POP &bull; COVAR_SAMP &bull; CREATE &bull; CROSS &bull; CUBE &bull; CUME_DIST &bull; CURRENT &bull;
    CURRENT_CATALOG &bull; CURRENT_DATE &bull; CURRENT_DEFAULT_TRANSFORM_GROUP &bull;
    CURRENT_PATH &bull; CURRENT_ROLE &bull; CURRENT_SCHEMA &bull; CURRENT_TIME &bull;
    CURRENT_TIMESTAMP &bull; CURRENT_TRANSFORM_GROUP_FOR_TYPE &bull; CURRENT_USER &bull;
    CURSOR &bull; CYCLE</p>
<p>DATE &bull; DAY &bull; DEALLOCATE &bull; DEC &bull; DECIMAL &bull; DECLARE &bull; DEFAULT &bull;
    DELETE &bull; DENSE_RANK &bull; DEREF &bull; DESCRIBE &bull; DETERMINISTIC &bull; DISCONNECT &bull;
    DISTINCT &bull; DO &bull; DOUBLE &bull; DROP &bull; DYNAMIC</p>
<p>EACH &bull; ELEMENT &bull; ELSE &bull; ELSEIF &bull; END &bull; END_EXEC &bull; ESCAPE &bull; EVERY
    &bull; EXCEPT &bull; EXEC &bull; EXECUTE &bull; EXISTS &bull; EXIT &bull; EXP &bull; EXTERNAL &bull;
    EXTRACT</p>
<p>FALSE &bull; FETCH &bull; FILTER &bull; FIRST_VALUE &bull; FLOAT &bull; FLOOR &bull; FOR &bull;
    FOREIGN &bull; FREE &bull; FROM &bull; FULL &bull; FUNCTION &bull; FUSION</p>
<p>GET &bull; GLOBAL &bull; GRANT &bull; GROUP &bull; GROUPING</p>
<p>HANDLER &bull; HAVING &bull; HOLD &bull; HOUR</p>
<p>IDENTITY &bull; IN &bull; INDICATOR &bull; INNER &bull; INOUT &bull; INSENSITIVE &bull; INSERT
    &bull; INT &bull; INTEGER &bull; INTERSECT &bull; INTERSECTION &bull; INTERVAL &bull; INTO &bull; IS &bull;
    ITERATE</p>
<p>JOIN</p>
<p>LAG</p>
<p>LANGUAGE &bull; LARGE &bull; LAST_VALUE &bull; LATERAL &bull; LEAD &bull; LEADING &bull; LEAVE
    &bull; LEFT &bull; LIKE &bull; LIKE_REGEX &bull; LN &bull; LOCAL &bull; LOCALTIME &bull; LOCALTIMESTAMP &bull;
    LOOP &bull; LOWER</p>
<p>MATCH &bull; MAX &bull; MAX_CARDINALITY &bull; MEMBER &bull; MERGE &bull; METHOD &bull; MIN &bull;
    MINUTE &bull; MOD &bull; MODIFIES &bull; MODULE &bull; MONTH &bull; MULTISET</p>
<p>NATIONAL &bull; NATURAL &bull; NCHAR &bull; NCLOB &bull; NEW &bull; NO &bull; NONE &bull; NORMALIZE
    &bull; NOT &bull; NTH_VALUE &bull; NTILE &bull; NULL &bull; NULLIF &bull; NUMERIC</p>
<p>OCCURRENCES_REGEX &bull; OCTET_LENGTH &bull; OF &bull; OFFSET &bull; OLD &bull; ON &bull; ONLY
    &bull; OPEN &bull; OR &bull; ORDER &bull; OUT &bull; OUTER &bull; OVER &bull; OVERLAPS &bull; OVERLAY</p>
<p>PARAMETER &bull; PARTITION &bull; PERCENT_RANK &bull; PERCENTILE_CONT &bull;
    PERCENTILE_DISC &bull; POSITION &bull; POSITION_REGEX &bull; POWER &bull; PRECISION &bull; PREPARE
    &bull; PRIMARY &bull; PROCEDURE</p>
<p>RANGE &bull; RANK &bull; READS &bull; REAL &bull; RECURSIVE &bull; REF &bull; REFERENCES &bull;
    REFERENCING &bull; REGR_AVGX &bull; REGR_AVGY &bull; REGR_COUNT &bull; REGR_INTERCEPT &bull;
    REGR_R2 &bull; REGR_SLOPE &bull; REGR_SXX &bull; REGR_SXY &bull; REGR_SYY &bull; RELEASE &bull; REPEAT &bull;
    RESIGNAL &bull; RESULT &bull; RETURN &bull; RETURNS &bull; REVOKE &bull; RIGHT &bull; ROLLBACK &bull; ROLLUP
    &bull; ROW &bull; ROW_NUMBER &bull; ROWS</p>
<p>SAVEPOINT &bull; SCOPE &bull; SCROLL &bull; SEARCH &bull; SECOND &bull; SELECT &bull; SENSITIVE
    &bull; SESSION_USER &bull; SET &bull; SIGNAL &bull; SIMILAR &bull; SMALLINT &bull; SOME &bull; SPECIFIC &bull;
    SPECIFICTYPE &bull; SQL &bull; SQLEXCEPTION &bull; SQLSTATE &bull; SQLWARNING &bull; SQRT &bull; STACKED
    &bull; START &bull; STATIC &bull; STDDEV_POP &bull; STDDEV_SAMP &bull; SUBMULTISET &bull; SUBSTRING &bull;
    SUBSTRING_REGEX &bull; SUM &bull; SYMMETRIC &bull; SYSTEM &bull; SYSTEM_USER</p>
<p>TABLE &bull; TABLESAMPLE &bull; THEN &bull; TIME &bull; TIMESTAMP &bull; TIMEZONE_HOUR &bull;
    TIMEZONE_MINUTE &bull; TO &bull; TRAILING &bull; TRANSLATE &bull; TRANSLATE_REGEX &bull;
    TRANSLATION &bull; TREAT &bull; TRIGGER &bull; TRIM &bull; TRIM_ARRAY &bull; TRUE &bull;
    TRUNCATE</p>
<p>UESCAPE &bull; UNDO &bull; UNION &bull; UNIQUE &bull; UNKNOWN &bull; UNNEST &bull; UNTIL &bull;
    UPDATE &bull; UPPER &bull; USER &bull; USING</p>
<p>VALUE &bull; VALUES &bull; VAR_POP &bull; VAR_SAMP &bull; VARBINARY &bull; VARCHAR &bull;
    VARYING</p>
<p>WHEN &bull; WHENEVER &bull; WHERE &bull; WIDTH_BUCKET &bull; WINDOW &bull; WITH &bull; WITHIN &bull;
    WITHOUT &bull; WHILE</p>
<p>YEAR</p>
</div>
<div class="section" title="List of SQL Keywords Disallowed as HyperSQL Identifiers">
<div class="titlepage">
<div>
<div>
<h2 class="title" style="clear: both">
<a name="lta_disallowed_keywords"></a>List of SQL Keywords Disallowed as HyperSQL Identifiers</h2>
</div>
</div>
</div>
<p>When the default <code class="literal">SET DATABASE SQL NAMES FALSE</code>
    mode is used, only a subset of SQL Standard keywords cannot be used as
    HyperSQL identifiers. The keywords are as follows:</p>
<p>ALL &bull; AND &bull; ANY &bull; AS &bull; AT &bull; AVG</p>
<p>BETWEEN &bull; BOTH &bull; BY</p>
<p>CALL &bull; CASE &bull; CAST &bull; COALESCE &bull; CORRESPONDING &bull; CONVERT &bull; COUNT &bull;
    CREATE &bull; CROSS</p>
<p>DEFAULT &bull; DISTINCT &bull; DROP</p>
<p>ELSE &bull; EVERY &bull; EXISTS &bull; EXCEPT</p>
<p>FOR &bull; FROM &bull; FULL</p>
<p>GRANT &bull; GROUP</p>
<p>HAVING</p>
<p>IN &bull; INNER &bull; INTERSECT &bull; INTO &bull; IS</p>
<p>JOIN</p>
<p>LEFT &bull; LEADING &bull; LIKE</p>
<p>MAX &bull; MIN</p>
<p>NATURAL &bull; NOT &bull; NULLIF</p>
<p>ON &bull; ORDER &bull; OR &bull; OUTER</p>
<p>PRIMARY</p>
<p>REFERENCES &bull; RIGHT</p>
<p>SELECT &bull; SET &bull; SOME &bull; STDDEV_POP &bull; STDDEV_SAMP &bull; SUM</p>
<p>TABLE &bull; THEN &bull; TO &bull; TRAILING &bull; TRIGGER</p>
<p>UNION &bull; UNIQUE &bull; USING</p>
<p>VALUES &bull; VAR_POP &bull; VAR_SAMP</p>
<p>WHEN &bull; WHERE &bull; WITH</p>
</div>
<div class="section" title="Special Function Keywords">
<div class="titlepage">
<div>
<div>
<h2 class="title" style="clear: both">
<a name="lta_function_keywords"></a>Special Function Keywords</h2>
</div>
</div>
</div>
<p>HyperSQL supports SQL Standard functions that are called without
    parentheses. These functions include CURRENT_DATE, LOCALTIMESTAMP,
    TIMEZONE_HOUR, USER, etc. When the default <code class="literal">SET DATABASE SQL NAMES
    FALSE</code> mode is used, keywords that are names of SQL functions can
    be used as column names without double quotes in CREATE TABLE statements .
    But when the identifier is a column name and is referenced in SELECT or
    other statements, the keywords must be double quoted. Otherwise the result
    of the SQL function is returned instead of the column value.</p>
<p>HyperSQL also supports non-standard functions SYSTIMESTAMP, CURDATE,
    CURTIME, TODAY, SYSDATE and NOW which can be called with or without
    parentheses ( e.g. NOW() or NOW ). These names can be used as column
    names, but the names must be double quoted in SELECT and other
    statements.</p>
</div>
</div>
<HR xmlns:xi="http://www.w3.org/2001/XInclude">
<P xmlns:xi="http://www.w3.org/2001/XInclude" class="svnrev">$Revision: 5206 $</P>
<div class="navfooter">
<hr>
<table summary="Navigation footer" width="100%">
<tr>
<td align="left" width="40%"><a accesskey="p" href="deployment-chapt.html"><img src="../images/db/prev.png" alt="Prev"></a>&nbsp;</td><td align="center" width="20%">&nbsp;</td><td align="right" width="40%">&nbsp;<a accesskey="n" href="building-app.html"><img src="../images/db/next.png" alt="Next"></a></td>
</tr>
<tr>
<td valign="top" align="left" width="40%">Chapter&nbsp;15.&nbsp;Deployment Guide&nbsp;</td><td align="center" width="20%"><a accesskey="h" href="index.html"><img src="../images/db/home.png" alt="Home"></a></td><td valign="top" align="right" width="40%">&nbsp;Appendix&nbsp;B.&nbsp;Building HyperSQL Jars</td>
</tr>
</table>
</div>
</body>
</html>
